Attacks to LINE E2EE scheme
https://gyazo.com/ae4204fd55aa797ee0d213bc3299a2eb
グループ暗号化メッセージ
最初のメンバーがECDH鍵ペア生成
サーバーより全グループメンバーの公開鍵を取得
1対1通信を全てのメンバーと行いsk_gを送信
sk_gをグループ鍵Kgとする
https://gyazo.com/b42f3fb9c673f0144823d0a4dfa31506
暗号化鍵とIVがグループ鍵K_g、送信者の公開情報のみから生成
なりすまし攻撃
不正なグループメンバMがK_gとpk_Aを使って任意のメンバAのshared secretを求め、(6), (8)の計算を行うことでAの共有鍵暗号を用いて暗号化することが可能
改竄攻撃
E2E攻撃者(サーバ)と結託
攻撃対象のメンバAの送信パケットDをブロードキャスト前に攻撃者Mが奪い
なりすまし攻撃と同様対応する鍵を用いてDを復号化
メッセージを任意に書き換え、再度暗号化しブロードキャスト
https://gyazo.com/5de33f7c24f9dd8cc7e0afe5701e1363
対策
グループ宛メッセージへ送信者の署名
1対1メッセージへの攻撃
公開鍵の登録におけるユーザー確認手段が存在しない
共通鍵暗号化におけるヘッダに対するメッセージ認証がない
攻撃者CがAとBへの通信を攻撃するケース
CはサーバーからAの公開鍵を取得
Aの公開鍵を自身の公開鍵として登録
Bとのshared secretを確立
対策
GCM使えばOK
鍵交換に置いて他人の鍵を使用していないか検証
鍵IDを含むヘッダに対するメッセージ認証